package com.bci.pwtz.service;

import java.util.List;
import java.util.Map;

import com.bci.pwtz.exception.PwtzDatabaseException;
import com.bci.pwtz.mysql.model.ExportTemplate;
import com.bci.pwtz.mysql.model.ImportTemplate;
import com.bci.pwtz.mysql.model.Vdystat;
import com.bci.pwtz.mysql.model.Vzdy;
import com.bci.pwtz.mysql.model.Vzystat;

public interface ExcelUtilService {
	/**
	 * 根据公司和所选模板导出数据
	 * companyId 所属公司ID
	 * templateId 模板ID
	 * stratTime 开始时间
	 * endTime 结束时间
	 * 返回下载地址
	 */
	String exportExcle(long companyId,long templateId,String stratTime,String endTime) throws PwtzDatabaseException;

	/**
	 * 导出营销坐标点GIS数据
	 */
	String exportYXExcle(long companyId,long templateId) throws PwtzDatabaseException;
	
	/**
	 * 根据公司和时间导出图片
	 * companyId 所属公司ID
	 * stratTime 开始时间
	 * endTime 结束时间
	 * 返回下载地址
	 */
	String exportPic(long companyId,String stratTime,String endTime, String tempDir,int exportType) throws PwtzDatabaseException;
	
	
	String exportGISPic(long companyId,String stratTime,String endTime, String tempDir,int exportType) throws PwtzDatabaseException;
	/**
	 * 导入数据
	 * companyId 所属公司ID
	 * templateId 模板ID
	 * templateUrl excle上传地址
	 * createId 创建人ID
	 * return Map
	 * "success" String 成功条数
	 * "insert" String 新增条数
	 * "update" String 更新条数
	 * "failure" List 失败条数、失败EXCLE所属SHEET和行号
	 */
	Map import2007Excle(long companyId,long templateId,String templateUrl,long createId);
	
	Map import2003Excle(long companyId, long templateId, String templateUrl,long createId);
	
	List<ExportTemplate> selectTemplate()  throws PwtzDatabaseException;
	
	List<ImportTemplate> selectImportTemplate()  throws PwtzDatabaseException;
	
	List<ImportTemplate> selectTemplateByDeviceTypeId(int deviceTypeId)  throws PwtzDatabaseException;
	
	String exportVzdyUserList(List<Vzdy> list,long companyId) throws PwtzDatabaseException;
	
	String exportVzdyList(List<Vzdy> list,long companyId) throws PwtzDatabaseException;
	
	String exportVdystatList(List<Vdystat> list,String companyName,String path,boolean bl) throws PwtzDatabaseException;
	
	String exportVzystatList(List<Vzystat> list,String companyName,String path,boolean bl) throws PwtzDatabaseException;

	String DYPMSExel(long companyId,long templateId,String LineCode,String deviceName) throws PwtzDatabaseException;

	String DYAllPMSExel(long companyId,long templateId,String LineCode,String deviceName,int deviceType,String transformerCode) throws PwtzDatabaseException;

	String ZYPMSExel(long companyId,long templateId,String LineCode,String deviceName) throws PwtzDatabaseException;
}
